// Promise有哪些对象方法
console.log(Promise.prototype)
console.log(
    Object.getOwnPropertyDescriptors(Promise.prototype)
)

// const promise = new Promise((resolve,reject)=>{
//     resolve("hahahhah")
// })
//1.同一个Promise可以被多次调用then方法
// 当我们的resolve方法被回调时,所有的then方法传入的回调函数都会被调用
// promise.then((res)=>{
//     console.log("res1:",res)
// })

// promise.then((res)=>{
//     console.log("res2:",res)
// })

// promise.then((res)=>{
//     console.log("res3:",res)
// })

//2.then方法传入的回调函数可以有返回值
//      1.如果我们返回的是一个普通值(数值/字符串/普通函数/undefined)，那么这个普通的值会被作为一个新的Promise的reslove值
//  promise.then(res =>{
//     //  return 11111
//  }).then(res=>{
//      console.log('res:',res)
//  })

//2.如果我们返回的是一个Promise
// promise.then(res=>{
//     return new Promise((resolve,reject)=>{
//         setTimeout(()=>{
//             resolve('1111')
//         },300)
//     })
// }).then(res=>{
//     console.log("res:",res)
// })

//3.如果返回的是一个对象，并且该对象实现了thenable（新的promise）
// promise.then(res=>{
//     return {
//         then:function (resolve,reject) {
//             resolve(2222)
//         }
//     }
// }).then(res=>{
//     console.log("res:",res)
// })